The present invention is directed to an Operating System (OS) and more particularly to a multitasking operating environment for multiplexer/ demultiplexer applications. The OS of the invention is configured using symbolic notation and user defined executable modules.
Every real time application can be defined as distinct processes, each consisting of a sequence of events as shown in FIG. 1.0. The type of event and the time at which the event is executed is unique to the application. The OS of the invention makes use of this generalization to define and coordinate processing activities within a processor. As one skilled in the art will recognize, the OS of the invention can be extended to numerous processing architectures. For ease of describing the invention, the invention will be described in terms of an OS used for a flexible multiplexer/demultiplexer system (FMDM) called an "FVOS" herein.
FMDM architecture consists of three processors: the Central Processing Unit (CPU), and Input and Output Processor (IOP), and an Arithmetic Processing Unit (APU). The IOP and APU are intended to free the CPU from time consuming inputs, outputs, and calculations. Therefore, optimal performance is achieved if all three processors are executing events at the same time commonly known as coprocessing. FVOS achieves this in the following manner.
Table 1.0 summarizes the function library which can be thought of as general purpose instructions which, when "threaded" together in a task definition list, define a task. The function library gives the user the tools to schedule his applications in symbolic notation. The function library consists of arithmetic, input/output (I/0), task creation/termination, built-in test, application module run, and reset functions. This gives the user a good mixture of functions to define his task. A conditional jump function is also included which gives the user the ability to jump over or loop within a list based on task status or timing.
The IOP executes serial input/output functions which are hardware specific For instance, an input from hardware cannot be performed while the IOP is currently performing another serial input or output. The APU calculates the results of application specific equations. The CPU performs all other functions, delegates the execution of IOP and APU functions, and initiates coprocessing. Some functions must include an address pointer in its definition. For example, the RUN function has a pointer to the location of the application module.
INPUT and OUTPUT functions have a pointer to the respective input or output buffers. A list of functions and pointers defines a task. Each task which makes up the application is defined in the same manner and then assigned a relative priority. The CPU then decodes these task lists and delegates each function to an individual processor based on priority and available resources.
The FMDM (three processor) implementation of this concept allows the capability of up to 128 task definition lists with one of eight priority levels. This is limited only by available memory and can be expanded to multiple processor systems with minimal refinement.
The word "flexible" applies to many areas of FMDM design that allow for a wide variety of payload applications. Some of these applications include use as a common/response unit for tying an experiment into a computer complex which may be resident on an aircraft, for example. The FMDM can also be used for controlling data acquisition providing autonomous control and data handling. FIG. 3 shows a generic example of an FMDM configuration including a microprocessor. FVOS was designed to free the user from the burden of interrupt handling, I/0 bus contention, system timing, etc., and at the same time, allow full access to FMDM resources. FVOS provides a multi-tasking environment with eight levels of priority, almost instant response to time critical events, and the ability to communicate with any of the IOM's via simple 1-line commands.